/******************************************************************************中
 * @brief: bsp.c
 * @Author:   aple
 * @Date: 2022-12-14 18:06:21
 * @LastEditors: aple
 * @LastEditTime: 2022-12-15 08:29:36
 * @Verision: 1.0.0.0
 ******************************************************************************/
#include "bsp.h"
#include "sys_init.h"
#include "framework.h"

/*******************************************************************************
 *	                           order
 *******************************************************************************/
obj_init_cpu(bsp_Init);

/*******************************************************************************
 *	                           function
 *******************************************************************************/
void bsp_gpio_init(void);
void bsp_cpu_option_check(void);
void bsp_pw_delay_for_bug(void);
void bsp_clk_init(void);
void bsp_adc_init(void);
uint32_t bsp_pwm_init(void);
uint32_t bsp_cap_init(void);
void bsp_clk_init(void);
void bsp_qpi_init(void);
void nor_spi_init(void);

/*******************************************************************************
 * @brief  bsp_Init : first line in first task
 * \param[in] none
 * \retval: none
 *******************************************************************************/
void bsp_Init(void)
{
	bsp_pw_delay_for_bug();

	bsp_cpu_option_check();

	bsp_clk_init();

	bsp_delay_init();

	bsp_gpio_init();

	app_tick_init(1);

	bsp_uart_init();
	
	bsp_dwt_check();
	
	nor_spi_init();
}

/*******************************************************************************
 * @brief  bsp_clk_init
 * \param[in] none
 * \retval: none
 *******************************************************************************/
void bsp_clk_init(void)
{

}

/*******************************************************************************
 * @brief  bsp_pw_delay_for_bug
 * \param[in] none
 * \retval: none
 *******************************************************************************/
void bsp_pw_delay_for_bug(void)
{
	volatile uint32_t dly = 120 * 1000 * 1000 / 12;
	while (dly--)
	{
	}
}

/*******************************************************************************
 * @brief  bsp_Idle
 * \param[in] none
 * \retval: none
 *******************************************************************************/
void bsp_Idle(void)
{
}

uint32_t TZ_LoadContext_S(void * id)
{

	return 0;
}

uint32_t TZ_StoreContext_S (void * id)
{
	return 0;
}
